/**
 * 框架.js
 */
layui.config({
	base : layuiExtend,
	version : false,
}).extend({
	
}).use(['layer', 'element', 'form'], function() {
	var $ =  layui.jquery,
	layer = layui.layer,
	element = layui.element,
	form = layui.form,
	
	// 加载层
	loadLayer = layer.load(),
	
	// 方法库
	o = {

			// 屏幕大小（0超小屏；1小屏；2中屏；3大屏）
			screen: function() {
		        var e = $(window).width();
		        return e >= 1200 ? 3 : e >= 992 ? 2 : e >= 768 ? 1 : 0;
		    },
		    
		    // 切换菜单 ==================================================================
		    // 变量
		    toggleVar: {
		    	logo: $(".layui-logo"),
		    	navLeft: $(".layui-layout-left"),
		    	body: $(".layui-body"),
		    	footer: $(".layui-footer"),
		    	toggle: $("#toggle-icon"),
		    	shrink: "layui-icon-shrink-right", 
		    	spread: "layui-icon-spread-left",
		    	side: $(".layui-side"),
		    	child: $(".layui-side").find(".layui-nav-child"),
		    	item: $(".layui-side").find(".layui-nav-item"),
		    },
		    // 切换菜单
		    toggleSide: function(e) { // e null 自动, true 展开, false 关闭
		    	var size = o.screen(), i = o.toggleVar;
		    	
		    	if (e === null) {
		    		e = i.toggle.hasClass(i.spread);
		    	}
		    	if (e) {
		    		// 显示侧边栏
		    		i.toggle.removeClass(i.spread).addClass(i.shrink);
		    		i.side.show();
		    		if (size < 2) {
		    			// 小屏
		    			$(".layui-body-shade").show();
		    			o.toggleNavItem(true);
		    		}else {
		    			// 大屏
		    			o.toggleNavItem(true);
		    			i.logo.show();
		    		}
		    	}else {
		    		// 隐藏侧边栏
		    		i.toggle.removeClass(i.shrink).addClass(i.spread);
		    		if (size < 2) {
		    			// 小屏
		    			i.side.hide();
		    			$(".layui-body-shade").hide();
		    			o.toggleNavItem(true);
		    			i.body.css("left", "0px");
		    			i.footer.css("left", "0px");
			    		i.navLeft.css("left", "0px");
			    		i.logo.hide();
		    		}else {
		    			// 大屏
		    			o.toggleNavItem(false);
		    		}
		    	}

	    		var menuTips = 0;
	    		i.item.find("a").hover(function(){
	    			if (i.side.css("width") == "50px") {
	    				menuTips = layer.tips($(this).find("cite").text(), this, {
							  tips: [2, '#000'],
							  time: -1
						});
	    			}
	        	}, function(){
	        		if (i.side.css("width") == "50px") {
	        			layer.close(menuTips);
	        		}
	        	});
	    		
	    		i.item.find("a").click(function(){
	    			if (i.side.css("width") == "50px") {
	    				o.toggleSide(true);
	    			}
	    			layer.close(menuTips);
	    		});
		    },
		    // 切换左侧导航图标
		    toggleNavItem: function(e) { // e true 显示全部, false 显示icon
		    	var size = o.screen(),
		    	i = o.toggleVar,
		    	li1 = i.item.children("a");
		    	if (e) {
		    		// 显示全部
		    		o.toggleWidth("200px");
		    		i.side.removeClass("layui-side-tips");
		    		i.side.css("width", "200px");
		    		li1.find("cite").show();
		    		li1.find("i").css("font-size", "14px");
		    	}else {
		    		// 仅显示图标
		    		o.toggleWidth("50px");
		    		i.side.css("width", "50px");
		    		i.side.addClass("layui-side-tips");
		    		li1.find("cite").hide();
		    		li1.find("i").css("font-size", "20px");
		    	}
		    },
		    // 变更宽度
		    toggleWidth: function(e) {// e: 左侧导航宽度 200px, 50px 
		    	var size = o.screen(), i = o.toggleVar;
		    	if (size >= 2) {
		    		i.body.css("left", e);
		    		i.footer.css("left", e);
		    		i.navLeft.css("left", e);
		    		i.side.find(".layui-nav").css("width", e);
		    	}
	    		if (e == "200px") {
	    			i.logo.find("span").show();
		    		i.logo.find("i").hide();
		    		
	    		}else if(e == "50px") {
	    			i.logo.find("span").hide();
		    		i.logo.find("i").show();
	    		}
	    		i.logo.find("a").css("width", e);
		    },
		    // 选中菜单
		    thisMenu: function() {
		    	layer.close(loadLayer);
		    	return false;
		    	// 获取当前地址
		    	var href = window.location.href, 
		    	// 选中状态
		    	status = 0;
		    	
		    	$(".layui-side").find("a").each(function(i, e){
		    		if (href.indexOf(e) !== -1) {
		    			$(this).parent().addClass("layui-this");
		    			$(this).parents("li[class=layui-nav-item]").addClass("layui-nav-itemed");
		    			status = 1;

				    	layer.close(loadLayer);
		    			return false;
		    		}
		    	});
		    	
		    	if (status == 0) {
		    		// 选中第一个
		    		var elementLi = $(".layui-side").find(".layui-nav-tree").find("li:first"), 
		    		elementDd = elementLi.find("dd:first");
		    		
		    		elementLi.addClass("layui-nav-itemed");
		    		elementDd.addClass("layui-this");

			    	layer.close(loadLayer);
		    		return false;
		    	}
		    },
		    // 加载页面
		    reload: function(e) { // e 页面地址地址
		    	window.location.href = window.location.href;
		    },
		    // 全屏
		    fullScreen: function() {
	            var e = document.documentElement
	              , a = e.requestFullScreen || e.webkitRequestFullScreen || e.mozRequestFullScreen || e.msRequestFullscreen;
	            "undefined" != typeof a && a && a.call(e);
	        },
	        // 退出全屏
	        exitScreen: function() {
	            document.documentElement;
	            document.exitFullscreen ? document.exitFullscreen() : document.mozCancelFullScreen ? document.mozCancelFullScreen() : document.webkitCancelFullScreen ? document.webkitCancelFullScreen() : document.msExitFullscreen && document.msExitFullscreen()
	        },
	},
	
	// 事件
	event = {
    		// 点击遮罩
    		shade: function(e){
    			o.toggleSide(false);
    		},
    		// 点击切换左侧主菜单状态
    		flexible: function(e) {
    			o.toggleSide(null);
    		},
    		// 刷新
    		refresh: function(e) {
    			if ($("#body-iframe").attr("src") != undefined) {
    				// 有iframe直接刷新
    				$("#body-iframe").attr("src", $("#body-iframe").attr("src")); 
    			}else {
    				// 没有iframe刷新页面
    				window.location.href = window.location.href;
    			}
    		},
    		// 全屏
    		fullscreen: function(e) {
    			var a = "layui-icon-screen-full"
    	              , t = "layui-icon-screen-restore"
    	              , i = e.children("i");
    	            i.hasClass(a) ? (o.fullScreen(),
    	            i.addClass(t).removeClass(a)) : (o.exitScreen(),
    	            i.addClass(a).removeClass(t))
    		},
			// 退出登录
    		logout: function(e) {
    			common.logout(e);
    		},
	};
    
	// 选中菜单
	o.thisMenu();
	
    // 初始化布局
	if (o.screen() < 2) {
		o.toggleSide(false);
	}
    
    // 当调整浏览器窗口的大小时触发
    $(window).resize(function(){
    	var size = o.screen();
    	if (size < 2) {
    		o.toggleSide(false);
    	}else {
    		o.toggleSide(true);
    	}
    });
	
    $("body").on("click", "[data-href]", function(){
    	$(".layui-body").css("padding", "10px 0px 5px 0px");
    	$(".layui-body").css("background", "#FFF");
    	var html = '<iframe scrolling="auto" allowtransparency="true" class="" frameborder="0" src="'+$(this).attr("data-href")+'" style="width: 100%; height: 100%;"></iframe>';
    	$(".layui-body").html(html);
    });
    
    // 事件
    $("body").on("click", "[data-event]", function(){
    	var e = $(this), t = e.attr("data-event");
    	event[t] && event[t].call(this, e);
    });
    
});
